nOpsのWorkload機能でアセスメントの工数を削減する
はじめに
Well-Aechitectedフレームワークとは
Well-Aechitectedフレームワーク とは簡単に言うと、「AWSが長年行ってきたサポートで得られた知見を集約・整理したベストプラクティス集」です。 優れた運用効率、セキュリティ、信頼性、パフォーマンス効率、コストの最適化、持続可能性の6つの観点からアーキテクチャの評価を行うことができます。
Well-Aechitectedフレームワークは皆さんの環境をより良いものにしていくための道しるべのようなものです。 Well-Aechitectedに限らずですがこういったセキュリティフレームワークは一度だけでなく定期的に準拠できているのかどうかアセスメントを行い、環境全体を評価していくことが重要になります。
nOpsでアセスメントを実行するメリット
nOpsにもアセスメントツールとしてWorkload機能があります。
通常アセスメントを進める際には、現状の把握のために多くの項目に担当者が回答していく必要があります。 nOpsでは機能の一つであるnOps Rulesを利用して一部の質問事項について自動的に評価を行います。これによって、アセスメントの工数が削減できるという点がnOpsを使ってアセスメントを進めていく大きなメリットの一つです。
新しいワークロードの作成
実際にWAFRを実行するために新しいワークロードを作成していきましょう。
上部のタブからWorkloadを選択、WAFRを選択します。
ワークロードに関してのダッシュボード画面から、Create new Workloadをくっりっくして新しいワークロードを作成していきます。
こちらの項目を埋めていきます。
Workload name
ワークロードに任意の名前を付けます。ワークロード名は作成後の変更不可のため気を付けましょう。
Review types
ワークロードのレビュータイプを選択します。 Well-Architected Framework Review(WAFR)のほかにAWS Foundational Technical ReviewやSaaS、Serverlessといった項目を選択することが可能です。複数のタイプを選択することも可能です。
Compliance frameworks
こちらではReview typesとは別にコンプライアンスフレームワークの選択が可能です。 HIPAA、CIS、SOC2の選択が可能です。
Create workload on your AWS account
このボタンをチェックすることでWell-Architected Toolでこのワークロードを作成及び同期できるようになります。 こちらにチェックを入れるとReview typesには自動的にWAFRが選択され、AWS account to save WAFR progressというWell-architected Toolをどのアカウントで同期するのかが選べるようになります。
AWS account to pull resources from
ここではどのアカウントのリソースについて評価を行うのか選択することが可能です。 nOpsに紐づけられたすべてのAWSアカウントから評価したいアカウントを選びます。複数選択も可能です。
Select Environment
評価する環境のステータスを選択します。デフォルトではPRODUCTION(本番環境)となっています。評価したい環境が本番環境のものであればそのままにしておいて問題ありません。
Description
ここにはワークロードに関しての説明を書きこむことができます。
Specify Workload Resource
ここをクリックするとクエリビルダーが開きます。
クエリビルダーを使用することで、ワークロードに追加するリソースを定義するルールを指定できます。ここで細かい設定をすることでWAFRに必要のないリソースを除外することができるようになります。
上記画像のような項目を埋めて、リソースを指定することができます。 今回はこちらは使わずに評価をしていきますが、どの項目も複数選択することが可能なので細かく絞り込んで行くことが可能です。
これらの項目をすべて埋めてSaveをクリックしてワークロードを作成します。 できたワークロードはこのような形でWorkloadのダッシュボード画面に保存されます。
作ったワークロードを見てみる
先ほど作成したワークロードを詳しく見て行きます。
- Diagram
- Summary
- ComplianceOps
作成したワークロードをクリックすると上記3つのタブが存在していることが分かります。この3つのタブの役割について詳しく見ていきます。
Diagream
このタブには、ワークロードリソースのダイアグラムが表示されます。 試しに今回はEC2とRDSを使った簡単なマルチAZ構成の環境を使ってWAFRを行っていきます。 ダイアグラムにするとこのようになります。 ここからさらにVPCやリージョン、サブネット、インスタンスなどをクリックしていくことでリソースの詳細を確認することができます。 いずれかのリージョンについての詳細を見てみた場合、このように右側のタブにそのリージョン内にどういった違反のあるリソースが存在しているのかを確認することができるようになっています。
さらに違反のあるリソースをクリックすることでResource Detailsを確認することができます。
ここではさらに詳しくリソースについて確認したり、実際にそのリソースが過去にどのような動きをしていたのかを確認することができます。 一点からのみでなく様々な角度からリソースを見ることで、今まで気が付くことができなかった違反や無駄にかかっていたコストを発見しやすくなります。
nOpsには、複数の視点からリソースを評価するための機能が多く用意されています。このDiagramタブもその機能の一つで、違反を構成図の観点から可視化することが可能です。こういった見方ができるアセスメントツールはなかなかないので個人的には面白い機能の一つかなと思います。
Summary
このタブではワークロードの概要に関して確認することができます。
- Resource Summary - リソースの総数や違反のあるリソースの数、RIやAutoScallingグループに属しているインスタンスの数を把握する事が可能
- Resources by Regions
- Resources by Cloud Services
- Resources by Service Category
- Tagged and Untagged Resources - タグ別にリソースをカテゴライズしグラフで表示可能。タグなしのリソース数についても記載あり
上記のように様々な角度からリソース分類、分析することができます。 このSummary機能は単体で使うよりも他の機能と併せて使うことで、よりリソースの全体像の把握に役に立ちそうです。 リソースの数が多くなればなるほど、細かく正確にリソースに関して人力で把握する事は難しくなってくるため、こういった機能を使うと良いかもしれません。
ConmplianceOps
こちらのタブではWAFRの進捗状況と結果を確認することが可能になっています。
ComplaianceOpsは上記画像のように3つのセクションに分かれています。
- Lenses Summary(赤枠)
- どのレンズやフレームワークに沿ってこのワークロードを作成したのかを確認することができる。追加や削除も可能で、変更が生じるとそれに応じて評価とレポートにも変更が加わる
- 評価の結果いくつの違反があったのかリスクの重要度ごとに色分けをして表示
- 現時点で評価が何%終わっているのかを表示(nOpsRulesを使いある程度評価の自動化が行われるため今回はワークロードを作成した時点で30%ほど完了)
- AssesumentをクリックするとWell-architected Freamworkの6つの柱に沿って用意された質問に答えてnOpsRulesだけでは評価しきれなかったアセスメントを進めることができる
- Top Recommendation(緑枠)
- アセスメントの結果や推奨されるアクションアイテムが表示される
- どういったnOpsRulesに基づいて評価がされたのかをSee detailsで確認することが可能
- Compliance Documents(青枠)
- どういった評価基準でアセスメントを行ったのかを残すためのドキュメントのアップロードが可能
- 次回以降アセスメントを行う場合に見ることができるように、組織内での規定などに関するドキュメントのアップロードなどを行う
AWS Well-Architected Toolとの同期
ワークロードを作成する際にCreate workload on your AWS accountを選択した場合、Well-architected Toolにワークロードを作成及び同期できということだったのでこちらも確認してみます。
実際にAWSの画面上でWell-architected Toolを開きワークロードを確認してみると、しっかり作成したSample-wafrという名前でワークロードが出来上がっていることが確認できます。 ※ワークロードはデフォルトでオレゴンリージョンで作成されてしまいますのでご注意ください。
まとめ
今回はnOpsのWorkload機能を使ったアセスメントに関してかなり細かくご紹介しました。 nOpsを使ってアセスメントを行うメリットとしては、下記が挙げられます。
- nOps Rulesを使いある程度自動的に評価を行うため、アセスメント工数を削減することが可能
- DiagramやSummaryといった機能を使いリソースを多方向から視覚的に把握、評価を行うことができる
- アカウントを横断して組織ごとやプロジェクトごとなどフィルタリングをしたうえで柔軟な単位でのアセスメントを行うことが可能
アセスメントは一度きりではなく定期的に行う必要があります。 マルチアカウントでの運用を行っている場合にはより大変な作業になります。
少しでも作業を楽にし、本来注力するべき業務に少しでも時間を使えるよう、こういった自動化ツールの活用を考えてみるのも良いかもしれません。